//移动次数
var count = 0;

$(document).ready(function () {
    $("#menu").hide();

    $('.fw-layout-right').on('click', function (e) {
        if ($("#menu").is(":visible")) {
            $("#menu").hide();
        }
    })
    $('#form-process-add').on('mousedown', function (e) {
        $("#menu").hide();
    });
    $('#form-process-add').on('click', function (e) {
        var con = $(".progressbar li .before");//点击区域划分
        var menua = $("#menu a");//点击区域划分
        if (menua.is(e.target) || menua.has(e.target).length > 0) {//设置目标区域外
            if ($("#menu").is(":visible")) {
                $("#menu").hide();
            }
        } else if (!con.is(e.target) && con.has(e.target).length === 0) {//设置目标区域外
            if ($("#menu").is(":visible") || $(".progressbar li.mousedown").hasClass('mousedown')) {
                $(".progressbar li.mousedown").removeClass("mousedown");
                $("#menu").hide();
                $.form.clear('form-node-info');
                $('#form-node-info').addClass('am-hide');
                $('.fw-layout-right .foldbar-indent').click();
            }
            ;
        } else {
            if ($(e.target).data("category") == 'Start' || $(e.target).data("category") == 'End') {
                return;
            }
            //现鼠标坐标
            var newX = getMousePos(e).x;
            var newY = getMousePos(e).y;
            var w = document.documentElement.scrollWidth || document.body.scrollWidth;
            var mw = $("#menu a").width();
            if (w < newX + 8 + mw) {
                newX -= 8 + mw;
            }
            var h = document.documentElement.scrollHeight || document.body.scrollHeight;
            var mh = $("#menu").height();
            if (h < newY + 12 + mh) {
                newY -= 12 + mh;
            }
            $("#menu").css({position: "absolute", 'top': newY + 12, 'left': newX + 8, 'z-index': 2});
            $("#name").text($(e.target).data("name"));
            $("#name").attr('title', "节点名称：" + $(e.target).data("name"));
            $("#menu a:not('#name')").data($(e.target).data());
            $(".progressbar li.mousedown").removeClass("mousedown");
            $(e.target).parent().addClass("mousedown");
            if ($('#form-node-info').hasClass('am-hide')) {
                // $('#edit-step').removeClass("am-hide");
                $.step.editStep(e.target);
            } else {
                // $('#edit-step').addClass("am-hide");
                $.step.switchStep(e.target);
            }
            if ($(e.target).parent("li").prev().find("span").data("category") == 'Start') {
                $('#left-move-step').addClass("am-hide");
            } else {
                $('#left-move-step').removeClass("am-hide");
            }
            if ($(e.target).parent("li").next().find("span").data("category") == 'End') {
                $('#right-move-step').addClass("am-hide");
            } else {
                $('#right-move-step').removeClass("am-hide");
            }
            $("#menu").show();

        }
    });

    $("#menu a:not('#name')").click(function () {
        switch ($(this).data("menu")) {
            case 'editStep':
                if (typeof $.step.editStep == "function") {
                    $.step.editStep(this);
                    $(this).addClass("am-hide");
                    if ($("#menu").is(":visible")) {
                        $("#menu").hide();
                    }
                }
                break;
            case 'removeStep':
                if (typeof $.step.removeStep == "function") {
                    $.step.removeStep(this);
                    if ($("#menu").is(":visible")) {
                        $("#menu").hide();
                    }
                }
                break;
            case 'leftMoveStep':
                if (typeof $.step.leftMoveStep == "function") {
                    $.step.leftMoveStep(this);
                    if ($("#menu").is(":visible")) {
                        $("#menu").hide();
                    }
                }
                break;
            case 'rightMoveStep':
                if (typeof $.step.rightMoveStep == "function") {
                    $.step.rightMoveStep(this);
                    if ($("#menu").is(":visible")) {
                        $("#menu").hide();
                    }
                }
                break;
            case 'additionConfig':
                if (typeof $.step.additionConfig == "function") {
                    $.step.additionConfig(this);
                }
                break;
            default:
        }
    });
});

//方法2
//Firefox支持属性pageX,与pageY属性，这两个属性已经把页面滚动计算在内了,
//在Chrome可以通过document.body.scrollLeft，document.body.scrollTop计算出页面滚动位移，
//而在IE下可以通过document.documentElement.scrollLeft ，document.documentElement.scrollTop
function getMousePos(event) {
    var e = event || window.event;
    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
    var x = e.pageX || e.clientX + scrollX;
    var y = e.pageY || e.clientY + scrollY;
    //alert('x: ' + x + '\ny: ' + y);
    return {'x': x, 'y': y};
}
